package si.yun.service;

import org.apache.ibatis.annotations.Param;
import si.yun.entity.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @ClassName: 栾佳俊
 * @Description: TODO
 * @Author: 空白
 * @Date 2021/7/29 13:54
 */

public interface SyOperationService {
    //栾佳俊
    int SelectSyOrder();
    //栾佳俊
    int SelectSyPendingCourses();
    //栾佳俊
    int SelectSySales();
    //栾佳俊
    int SelectSyPending();
    //栾佳俊
    int SelectSyCommodity();
    //栾佳俊
    List<Integer> SelectSyOrderStatistics(String value, List<String> timeDate);
    //栾佳俊
    int SelectSyOrderDingDan();
    //栾佳俊
    int SelectSyOrderDingDanMonery();
    //栾佳俊
    int SyCourseOrderManagementselControllerAllOrders();
    //栾佳俊
    int SyCourseOrderManagementselControllerPendingPayment();
    //栾佳俊
    int SyCourseOrderManagementselControllerCompleted();
    //栾佳俊
    int SyCourseOrderManagementselControllerCancelled();
    //栾佳俊
    List<SyUserOrder> SyCourseOrderManagementselControllerAllOrderReviewList();
    //栾佳俊
    List<SyUserOrder> SyCourseOrderManagementselControllerPendingPaymentList();
    //栾佳俊
    List<SyUserOrder> SyCourseOrderManagementselControllerCompletedList();
    //栾佳俊
    List<SyUserOrder> SyCourseOrderManagementselControllerCanceledList();
    //栾佳俊
    List<SyUserOrder> SyCourseOrderManagementselControllerAllCourseOrderListView(SyUser syUser);
    //栾佳俊
    List<SyUserOrder> AdvancedRetrievalOfCourseListPopUpLayer(SyUser syUser);
    //栾佳俊
    int SyCommodityReviewAdd(String str2, int c, int id);
    //栾佳俊
    int SyProductNameUpd(String str, int c, int id);
    //栾佳俊
    List<SyCourse> SyCourseReview();
    //栾佳俊
    SyCourse SyCourseReviewXiangqing(int s);
    //栾佳俊
    List<SyCourse> SyCourseReviewAdvancedSearch(String kecheng, int aClass, int aClass2);
    //栾佳俊
    List<HashMap> getProgect(@Param("productName") String productName, @Param("condition") Integer condition, @Param("productLabel") String productLabel);
    //栾佳俊
    List<HashMap> SyCourseDatasheets();
    //栾佳俊
    List<HashMap> SyCourseCommodityReviewSearch(String sss, int sss1, int sss2);
    //栾佳俊
    List<HashMap> SyAdvancedSearchCourseReview(SyUser syUser);
    //栾佳俊
    List<HashMap> SyPendingCommodityChindChaKan(int id);
    //栾佳俊
    List<HashMap> AdvancedSearchCourseReview(String remarks, int select1, String email, String position_id, int select2, String position);
    //栾佳俊
    int SyAllProducts();
    //栾佳俊
    int SyReviewedProducts();
    //栾佳俊
    int PendingProducts();
    //栾佳俊
    int SyFailedProduct();
    //查看优惠券
    List<Map<String,Object>> selCoupon(SyUserCoupon sc);
    //删除优惠券
    int delCoupon(Integer couponId);
    //添加优惠券
    int addCoupon(SyUserCoupon sc);
    //修改优惠券状态
    int updCouponOnline(Integer online, Integer coupon_id);
    //修改商品状态 李军瑶 10/14
    public int updProductSate(Integer state, Integer productId);
    //查看用户优惠券记录
    List<Map<String,Object>>  selCouponUsed(@Param("account") String account, @Param("nickname") String nickname, @Param("user_id") Integer user_id);
    //轮播图列表查询
    List<Map<String,Object>> selCarousel(Map<String,Object> map);
    //轮播图列表查询
    int addCourseInsimport(List<SyCourse> list);
    //轮播图列表查询
    List<Map<String, Object>> selCourses(Map<String, Object> map);
    //轮播图列表查询
    int delCourse(Integer courseId);
    //轮播图列表查询
    List<Map<String, Object>> selCourseClass();
    //添加课程分类
    int addCourseClass(SyCourseClass sc);
    List<Map<String, Object>> selCourseAud();
    List<Map<String, Object>> selCourseHeight(SyCourse list);
    Map<String, Object> selCoAuInfo(int courseNo);
    int upCourseCstatus(int result, int courseId);
    List<Map<String, Object>> selCourseClassSelect();
    int updCourseClass(SyCourseClass sc);
    int delCourseClass(Integer id);
    int updCourses(SyCourse sc);
    List<Map<String, Object>> selCourseLog(Integer type, Integer log_id);
    Map<String, Object> selCousrseChildParent(Integer id);
    int addCourse(SyCourse sc, List<SyMicrocircleImg> l);
    List<Map<String, Object>> selCourseRecord(Integer type, Integer course_id);
    //李军瑶商品审核详情
    List<Map<String, Object>> getAuditDetails(Integer type,Integer productId);
    int addInsimportExcel(List<SyProduct> list);
    //查询所有商品分类赋值给下拉菜单
    List<Map<String, Object>> selProductCategorySelect();
    //获取商品信息
    List<Map<String, Object>> selProduct(Map<String, Object> map);
    //删除商品
    int delProduct(Integer productId);
	//删除商品2  李军瑶 11/25
    int upProduct(@Param("productId") Integer productId,Integer mid);
    //查询商品分类  李军瑶 10/28
    List<Map<String, Object>> selProductCategory(Integer ParentId,Integer id );
    //添加商品分类
    int addProductCategory(SyProductCategroy spc);
    //修改商品分类信息 李军瑶 11/2
    int updProductCategory(String categroyName, Integer id,Integer updateUser);
    //删除商品分类
    int delProductCategory(Integer id);
    //修改商品信息 李军瑶 12/15
    int updProduct(ProductTable prta,List list1,List list2,List<Map<String, Object>> list3);
    //商品日志列表
    List<Map<String, Object>> selProductLog(ProductTable proTab);
    //添加商品
    int addProduct(SyProduct sp, List<SyMicrocircleImg> l);
    //通过子获取父分类
    Map<String, Object> selChildParent(Integer id);
    //赠送优惠券记录
    int addCouponUsed(List list);
    //查看轮播图记录
    List<Map<String, Object>> selCarouselPictures(Map<String ,Object> map);
    //轮播图列表删除
    int DeleteCarousel(int carousel_id);
    //修改轮播图上下线
    int updCarouselDisplay(Integer display, Integer carousel_id);
    //修改轮播图
    int updCarousel(Map<String ,Object> map);
    //添加轮播图
    int addCarousel(Map<String, Object> map, String backImgNewName1);


    //统计--折线图
    Map<String, Object> selCurriculumCount() throws Exception;
    //折线图
    Map<String, Object> selPageSystem();
    //统计评论数量
    List<Map<String, Object>> selCommentCount(Integer type, Integer userType);
    //统计历史/今天数量
    Map<String, Object> historyTodayCount(Integer type);
    //查询评论
    List<Map<String, Object>> selComment(Integer type, Integer status, Integer userType);
    List<Map<String, Object>> selBackComment(Integer type, Integer status, Integer userType);
    //评论状态修改
    int updComment(Integer status, Integer id);
    //查询商品订单列表
    List<Map<String, Object>> selProductOrderList(Map<String, Object> m);
    //高级检索查询商品订单列表
    List<Map<String, Object>> selProductOrderList1(Map<String, Object> m);
    //商品订单列表的查看
    Map<String, Object> selProductOrderDetails(String orderId);
    //商品订单列表的删除
    int delProductOrderDetails(String orderId);
    //查询商品订单待付款列表
    List<Map<String, Object>> selGoodsPaidList(Map<String, Object> m);
    //查询课程订单列表数据
    List<Map<String, Object>> selCourseOrderListData(Map<String, Object> m);
    //查询课程订单列表数据详情
    Map<String, Object> selCourseOrderList(Map<String, Object> m);
    //查询个人商品列表
    List<Map<String,Object>> selPersonalProductList(Map<String, Object> m);
    List<Map<String, Object>> selBolk(Integer type, Integer status);
    //彻底删除评论
    Integer clearComment(Integer id);

	//删除个人商品  10/18 李军瑶
    int delPersonalProductList(Integer productId);
	//删除个人商品2  11/25 李军瑶
    int upPersonalProductList(Integer productId);
	
	//修改商品审核状态  李军瑶 11/3
    int upProductSate(Integer productSate,Integer productId);

	//课程订单详情   李军瑶   11/16
    List<Map<String,Object>> selCourseOrderLists(Integer orderId);

    //李军瑶
    //商品审核列表
    List<Map<String,Object>> getCommodityAudit(ProductTable protab);
    //统计审核状态的商品数量
    int getStatisticalAuditStatus(Integer productSate);
    //商品审核   李军瑶 11/3
    int setCommodityAudit(Integer state,Integer implementId,Integer productSate,Integer productId,String result,String details,Integer type) throws Exception ;

    //查看课程详情
    SyCourseTab selcourse(Integer courseId);

    //课程详情下的评论区
    List<SyCommentList> selCommentInfo(Integer id,Integer type);
    //添加评论
    Integer addCommentInfo(SyComment comment);
    //查询评论 文章 前后端
    List<Map<String, Object>> selEssayComment(Integer type, Integer status, Integer userType);
    List<Map<String, Object>> selEssayBackComment(Integer type, Integer status, Integer userType);
    //查看文章详情
    OperEassyInfo selEassyInfo(Integer microcircleId);
    //获取用户信息
    Map<String,Object> seluserInfos(String tableName,String tableInfo,Integer userId);
    //获取文章中包含的图片
    List<Map<String,Object>> selEassyImgs(Integer microcircleId,Integer pictureType);
    //获取商品评论的信息
    List<Map<String, Object>> selCommodityComment(Integer type, Integer status, Integer userType);
    List<Map<String, Object>> selCommodityBackComment(Integer type, Integer status, Integer userType);
    //获取商品的详细信息
    OperCommodityInfo selCommodityInfo(Integer microcircleId);
    //获取商品中包含的图片
    List<Map<String,Object>> selCommodityImgs(Integer microcircleId,Integer pictureType);
    //获取个人评论统计数量（课程  文章  商品)
    List<Map<String,Object>> getCourseCountNum(Integer userId, Integer userType);
    List<Map<String,Object>> getEssayCountNum(Integer userId, Integer userType);
    List<Map<String,Object>> getProductCourseCountNum(Integer userId, Integer userType);
    //获取个人课程的评论数据  前后
    List<Map<String, Object>> getCourseBeforeAjax(Integer userId, Integer status, Integer userType);
    List<Map<String, Object>> getCourseBackAjax(Integer userId, Integer status, Integer userType);
    //获取个人文章的评论数据 前后
    List<Map<String, Object>> selPerBackEasComment(Integer userId, Integer status, Integer userType);
    List<Map<String, Object>> selPerBeforeEasComment(Integer userId, Integer status, Integer userType);
    //获取个人商品评论的信息 前后
    List<Map<String, Object>> getCommodityBeforeAjax(Integer userId, Integer status, Integer userType);
    List<Map<String, Object>> getCommodityBackAjax(Integer userId, Integer status, Integer userType);


    //商品订单列表   李军瑶  11/8
    List<Map<String,Object>> addOrdersGoods(ProductTable protab);
    //统计商品订单数量    李军瑶  11/8
    int getOrderNumber(Integer orderType,Integer orderStatus);


    //商品订单详情   李军瑶   11/11
    List<Map<String,Object>> getOrderDetails(Integer orderId);
	//修改订单状态  李军瑶 11/24
    int upOrderStatus(String orderStatus,Integer orderId);
    //修改收件人信息   李军瑶   11/11
    int setAddress(String address,Integer orderId);
    //收件人地址   李军瑶   11/11
    Map<String,Object> getAddress(Integer orderId);

    /*
     * @Description : 商品分类
     * @Return : java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
     * @Date : 2021/11/17 20:43
     */
    List<Map<String, Object>> selProductCategory2(Integer ParentId,Integer id );
	
	//退货列表   李军瑶 11/19
    List<Map<String,Object>> returnGoods(ProductTable protab);
    //统计商品订单数量    李军瑶  11/19
    int getReturnGoodsNumber(Integer orderStatus);
    //商品退货订单审核   李军瑶 11/22
    int setOrderAudit(Integer productId,Integer orderStatus,Integer orderId,Integer implementId,String result,String details,Integer type) throws Exception ;



    /**
     * @Description : 查询前台单个课程详情
     * @Return : si.yun.entity.SyCourseTab
     * @Date : 2021/11/29 8:49
     */
    SyCourseTab selBeforeCourse(Integer courseId);
	
	//商品修改信息
    ProductTable selProducts(@Param("productId") Integer productId);
}
